# -*- coding:utf-8 -*-
__project__ = '远端库'
__file_name__ = '第八次课程作业'
__author__ = "tcf"
__date__ = "2020/11/18 23:35"
__product_name = 'PyCharm'
# @FileName :第八次课程作业.py
# code is far away from bugs with the god animal protecting


# 1.python2.x，3.x默认的编码格式分别是什么？
'''
1.大环境不同
python2.x：源码重复，不规范
python3.x：整合源码，更清晰优美简单

2.默认编码不同
python2.x：默认编码ASCII编码
python3.x：默认编码UTF-8

3.python3.x没有长整型
python2.x：有长整型long
python3.x：long整数类型被废弃，统一为int

4.打印方式不同
python2.x：print语句，print空格+打印内容
python3.x：print()函数，print(打印内容)

5.交互函数不同
python2.x：raw_input() input()
1) raw_input()函数的输入内容类型为字符串
2) input()函数的输入内容类型为输入字符的类型
1) raw_input()被废除，统一使用input()
2) input()函数的输入内容类型为字符串

'''


# 2.将"hello_new_world" 按 "_" 符进行切割
# str = "hello_new_world"
# a = str.split('_')
# b = str.split('_', 1)  # 切割1个
# print(a)   # ['hello', 'new', 'world']
# print(b)    # ['hello', 'new_world']




# 3.将数字1以 "0001" 的格式输出到屏幕
# a = str(1)
# print(a)  # 1
# b = list(a)
# print(b)   # ['1']
# b.insert(0, '000')
# print(b)   # ['000', '1']
# c = ''.join(b)
# print(c)   # 0001


# a1 = 1
# a2 = "%04d" % a1    # 前面写0，a2共4位元素
# print(a2)   # 0001


# b = '1'
# c = b.rjust(4, '0')    # 从右往左填充0，填充到第四位（不是下标）
# print(c)    # 0001


# j = '1'
# print(j.zfill(4))  # 0001
# zfill() 方法返回指定长度的字符串，原字符串右对齐，前面填充0。


# 4.字典 a = {1: 1},是否正确？
# 正确，字典的key必须是不可变，而1是int,是不可变
# a = {1: 1}
# print(type(a))   # <class 'dict'>



# 5.请合并列表 a = [1, 2, 3, 4] 和列表 b = [5, 6, 7, 8]
# a = [1, 2, 3, 4]
# b = [5, 6, 7, 8]
# list = a + b
# print(list)   # [1, 2, 3, 4, 5, 6, 7, 8]
# 或者
# a.extend(b)
# print(a)     # [1, 2, 3, 4, 5, 6, 7, 8]




# 6.列表a，请写出实现正序排列，倒序排列，逆序排列的内置方法
# a = [1, 3, 5, 6]
# a.sort()  # 正序
# a.sort(reverse=True)  # 降序（逆序）
# b = a[::-1]   # 反转（倒序）
# a.reverse()   # 反转




# 7.字典 d = {"k": 1, "v": 2},请写出 d.items()的结果
# d = {"k": 1, "v": 2}
# print(d.items())
# dict_items([('k', 1), ('v', 2)])



# 8.复杂列表[{"k": 1, "v": 2}, {"k": 12, "v": 22}, {"k": 13, "v": 32}],请用内置方法写出按k倒序排列的代码

# list = [{"k": 1, "v": 2}, {"k": 12, "v": 22}, {"k": 13, "v": 32}]
# list1 = list[::-1]
# print(list1)

# [{'k': 13, 'v': 32}, {'k': 12, 'v': 22}, {'k': 1, 'v': 2}]



# 9.集合 s = set([1, 2, 3, 4]),d = set([2, 4, 9, 0, 3]),请用内置方法写出他们的并集，交集，对称差
# s = {1, 2, 3, 4}
# d = {2, 4, 9, 0, 3}

# 并集
# set1 = s | d
# set2 = s.union(d)    # 或者这样也可
# print(set1)    # {0, 1, 2, 3, 4, 9}
# print(set2)      # {0, 1, 2, 3, 4, 9}


# 交集
# set2 = s & d
# print(set2)   # {2, 3, 4}
# other = s.intersection(d)
# print(other)

# 差集
# set = s - d
# print(set)   # {1}
# other = d.difference(s)
# print(other)    # {0, 9}


# 对称差
# 集合A与集合B中所有不属于A∩B的元素的集合，记为A△B

# Symmetric = s.symmetric_difference(d)
# print(Symmetric)   # {0, 1, 9}



# 10.如何把列表a = ["a", "b"] 里的各项，转为字符串并用逗号“，”连接
# a = ["a", "b"]
# b = ','.join(a)
# print(b)  # a,b




# 11.判断下面描述是否正确，若有错误，指出并改正

# 字典：具有键值映射关系，无序，字典的键不能重复而且可以是任意数据类型
# key只能是不可变
#
# 元组：不能修改，无序，不能索引切片，当元组中只有一个元素时，需要在元素的后面加逗号
# 有序，可以索引切片
#
# 列表：元素可以重复，有序，不可以反向索引，元素可以是任意类型
# 可以反向索引
#
# 集合：元素不可以重复，可以索引，a = {}声明了一个空集合
# 不可以索引，a = {}是空字典   空集合 a = set()  集合中的元素必须是不可变





# 12.一行代码实现求1到100的和
# sum = 0
# for i in range(1, 101):
#     sum += i
#     i += 1
# print(sum)  # 5050

# print(sum(range(1, 101)))   # sum是求和方法



# 13.按下面要求写出完整代码：
#  使用random.random方法实现随机输出范围在[25, 60)中的浮点数
# import random
# a = random.uniform(25, 60)
# print(a)


# import random
# a = random.random()  # 这个方法只能是0到1之间  左闭右开
# if (a >= 0.25) and (a <= 0.6):
#     print(a * 100)


# import random
# a = random.randint(25, 60) + random.random()
# print(a)



# 14.一个list对象：a = [1, 2, 4, 3, 2, 2, 4]，需要去掉里面的重复值

# a = [1, 2, 4, 3, 2, 2, 4]
# b = list(set(a))
# print(b)  # [1, 2, 3, 4]





if __name__ == "__main__":
    TheApp = 0